<ui:composition xmlns="http://www.w3.org/1999/xhtml"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:p="http://primefaces.org/ui"
	template="/facelets/templates/zona-privada-principal.xhtml">

	<ui:define name="title"> Gesti&#243;n de repuestos </ui:define>
	<ui:define name="nameForm"> Gesti&#243;n de repuestos </ui:define>
	<ui:define name="content">

		<h:form styleClass="ui-widget" id="formBusqueda" prependId="false">

			<div id="sub-header">
				<div id="nameForm">Gesti&#243;n de repuestos</div>

				<div id="toolBar">
					<p:commandLink id="buscar" action="#{gestionRepuestosController.buscarRepuestos}"
								   update="plgDtRepuestos" process="@this,busqueda" 
								   styleClass="butonSmall">
						<h:graphicImage library="images" name="buscar.png" styleClass="toolbar-icon" 
										alt="Buscar" title="Buscar" />
					</p:commandLink>

					<p:spacer width="10px" />
					<p:commandLink action="#{gestionRepuestosController.limpiarBusqueda}"
								   update="plgFiltro" process="@this,busqueda"
								   styleClass="butonSmall" global="false">
						<h:graphicImage library="images" name="limpiar.png" styleClass="toolbar-icon" 
										alt="Limpiar" title="Limpiar" />
					</p:commandLink>

					<p:spacer width="10px" />
					<p:commandLink styleClass="butonSmall" global="false"
						action="#{gestionRepuestosController.limpiarNuevoRepuesto}"
						update=":formRepuestos:panelRepuestoNuevo"
						oncomplete="wvDlgRepuestoNuevo.show(); limpiarFormulario('panelRepuestoNuevo');"
						process="@this">
						<h:graphicImage library="images" name="nuevo.png"
							styleClass="toolbar-icon" alt="Nuevo" title="Nuevo" />
					</p:commandLink>
					<p:defaultCommand target="buscar" />
				</div>
			</div>
			<div id="content">
				<h:panelGroup id="busqueda">
					<div class="panel-filtro">
						<p:panelGrid id="plgFiltro" columns="6">
							<h:outputLabel styleClass="label-general" value="C&#243;digo: " />
							<p:inputText styleClass="input-general" value="#{gestionRepuestosController.repuestoForm.codigo}" />
							<h:outputLabel styleClass="label-general" value="Descripci&#243;n: " />
							<p:inputText styleClass="input-general" value="#{gestionRepuestosController.repuestoForm.nombre}" />

							<h:outputLabel styleClass="label-general" value="Estado:" />
							<p:selectOneMenu id="cboEstadoRepuesto"
								value="#{gestionRepuestosController.repuestoForm.estado}"
								styleClass="select-general">
								<f:selectItem itemLabel="Seleccione" itemValue="-1" />
								<f:selectItem itemLabel="Activo" itemValue="A" />
								<f:selectItem itemLabel="Inactivo" itemValue="I" />
							</p:selectOneMenu>
						</p:panelGrid>

					</div>
				</h:panelGroup>
				<p:spacer height="25" />
				<div>
					<h:panelGroup id="plgDtRepuestos">
						<p:dataTable id="dtRepuestos" var="repuesto" value="#{gestionRepuestosController.listaRepuestoLazy}"
									 rowKey="#{repuesto.idRepuesto}" lazy="true"
									 emptyMessage=""
									 paginator="true" paginatorPosition="top" rows="10"
									 paginatorTemplate="{FirstPageLink} {PreviousPageLink} {CurrentPageReport} {NextPageLink} {LastPageLink}"
									 currentPageReportTemplate="{currentPage} de {totalPages}">
							
							<p:column id="colCodigo" headerText="C&#243;digo" sortBy="#{repuesto.codigo}" style="width:125px" >
								<h:outputText value="#{repuesto.codigo}" />
							</p:column>
							
							<p:column id="colNombre" headerText="Descripci&#243;n" sortBy="#{repuesto.nombre}">
								<h:outputText value="#{repuesto.nombre}">
								</h:outputText>
							</p:column>
							
							<p:column id="colEstado" headerText="Estado" style="width:125px" sortBy="#{repuesto.estado}">
								<h:outputText value="#{repuesto.estado}">
									<f:converter converterId="estadoConverter" />
								</h:outputText>
							</p:column>
							
							<p:column style="width:2%">
								<f:facet name="header">
									<h:outputText value=" " />
								</f:facet>
								<p:commandLink id="cmlGrupoEditar" action="#{gestionRepuestosController.seleccionarEdicionRepuesto(repuesto)}"
											   process="@this" oncomplete="wvDlgRepuestoEditar.show();"
											   update=":formRepuestos:panelRepuestoEditar" global="false">
									<h:graphicImage library="images" name="editar.png" styleClass="icon-small" 
													alt="Editar" title="Editar" />
								</p:commandLink>
							</p:column>
							
							<p:column style="width:2%">
								<f:facet name="header">
									<h:outputText value=" " />
								</f:facet>
								<p:commandLink id="cmlRepuestoEliminar" immediate="true" global="false"
											   oncomplete="wvDlgRepuestoEliminar.show();">
									<h:graphicImage library="images" name="eliminar.png" styleClass="icon-small" 
												    alt="Eliminar" title="Eliminar" />
									<f:setPropertyActionListener value="#{repuesto}" target="#{gestionRepuestosController.repuestoEliminar}" />
								</p:commandLink>
							</p:column>
							<f:facet name="footer">
								<div class="pie-cantidad-resultados">
									<h:outputText
										rendered="#{gestionRepuestosController.listaRepuestoLazy.nroRegistros>0}"
										value="Se encontraron #{gestionRepuestosController.listaRepuestoLazy.nroRegistros} repuestos." />
									<h:outputText
										rendered="#{gestionRepuestosController.listaRepuestoLazy.nroRegistros==0}"
										value="No se encontraron repuestos." />
								</div>
							</f:facet>
						</p:dataTable>
					</h:panelGroup>
				</div>
			</div>
		</h:form>
		<h:form styleClass="ui-widget" id="formRepuestos" prependId="false">
			
				<p:growl id="growl" showDetail="true" sticky="false" life="4500"
					globalOnly="true" />
				<!--			Dialog  Nuevo Repuesto			-->

				<p:dialog id="dlgRepuestoNuevo" widgetVar="wvDlgRepuestoNuevo"
						  closable="true" header="Nuevo repuesto"
						  modal="true" resizable="false">
					<h:panelGroup id="panelRepuestoNuevo">
						<div class="panel-general-popup">
							<div class="panel-formulario">
								<p:panelGrid id="gridDatosNuevoRepuesto" columns="2">
									<h:outputLabel styleClass="label-general">C&#243;digo: <span>( * )</span>
									</h:outputLabel>
									<p:inputText styleClass="input-general"
										requiredMessage="C&#243;digo: Requerido."
										id="codigoSapNuevo"
										value="#{gestionRepuestosController.repuestoNuevo.codigo}"
										title="C&#243;digo del repuesto" required="true" maxlength="10">
										<f:validator validatorId="codigoRepuestoValidator" />
										<f:attribute name="campo" value="C&#243;digo" />
										<p:ajax update="msgCodigoSAPNuevo" global="false"/>
									</p:inputText>

									<h:outputLabel styleClass="label-general">Descripci&#243;n: <span>( * )</span></h:outputLabel>
									<p:inputText id="nombreRepuestoNuevo" value="#{gestionRepuestosController.repuestoNuevo.nombre}" 
												 styleClass="input-general" requiredMessage="Descripci&#243;n: Requerido." 
												 title="Descripci&#243;n del repuesto" required="true">
										 <f:validator validatorId="nombreRepuestoValidator" />
										 <f:attribute name="campo" value="Descripci&#243;n" />
										 <p:ajax update="msgNombreRepuestoNuevo" global="false"/>
									</p:inputText>

									<h:outputLabel styleClass="label-general">Unidad medida: <span>( * )</span></h:outputLabel>
									<p:selectOneMenu id="cboUnidadMedidaNuevo" value="#{gestionRepuestosController.repuestoNuevo.idUnidad}"
													 styleClass="select-general">
										<f:selectItem itemLabel="Seleccione" itemValue="-1" />
										<f:selectItems var="unidad" value="#{gestionRepuestosController.listaUnidadMedida}"
											 		   itemValue="#{unidad.idUnidadMedida}" itemLabel="#{unidad.nombre}" />
										<f:validator validatorId="seleccionValidator" />
										<f:attribute name="campo" value="Unidad de medida" />
										<p:ajax update="msgUnidadMedidaNuevo" global="false"/>
									</p:selectOneMenu>

									<h:outputLabel styleClass="label-general"  >Estado: <span>( * )</span></h:outputLabel>
									<p:selectOneMenu id="cboEstadoRepuestoNuevo" value="#{gestionRepuestosController.repuestoNuevo.estado}" 
													 styleClass="select-general">
										<f:selectItem itemLabel="Activo" itemValue="A" />
										<f:selectItem itemLabel="Inactivo" itemValue="I" />
									</p:selectOneMenu>
								</p:panelGrid>
							</div>

							<div class="panel-botones" align="center">
								<p:commandButton value="Guardar"
												 icon="ui-icon-disk"
												 action="#{gestionRepuestosController.guardarNuevoRepuesto}"
												 oncomplete="ocultarDialogSiOperacionEsCorrecta(xhr, status, args,wvDlgRepuestoNuevo)"
												 update=":formBusqueda:plgDtRepuestos, growl,:formRepuestos:dlgRepuestoNuevo"
												 process="@this,panelRepuestoNuevo" />
								<p:spacer width="5" />
								<p:commandButton value="Salir" icon="ui-icon-arrowreturn-1-w"
												 oncomplete="wvDlgRepuestoNuevo.hide();"
												 styleClass="buton-general" process="@this" global="false"/>
							</div>

							<div class="panelMessages">
								<p:message id="msgCodigoSAPNuevo" for="codigoSapNuevo" />
								<p:message id="msgNombreRepuestoNuevo" for="nombreRepuestoNuevo" />
								<p:message id="msgUnidadMedidaNuevo" for="cboUnidadMedidaNuevo" />
							</div>
						</div>
					</h:panelGroup>
				</p:dialog>


				<!--			Dialog Editar Repuesto			-->

				<p:dialog id="dlgRepuestoEditar" widgetVar="wvDlgRepuestoEditar"
						  closable="true" header="Editar repuesto"
						  modal="true" resizable="false">
					<h:panelGroup id="panelRepuestoEditar">
						<div class="panel-general-popup">
							<div class="panel-formulario">
								<p:panelGrid id="gridDatosEditarRepuesto" columns="2">
									<h:outputLabel styleClass="label-general">C&#243;digo: <span>( * )</span></h:outputLabel>
									<p:inputText id="codigoSapEditar" value="#{gestionRepuestosController.repuestoEditar.codigo}"
												 styleClass="input-general" requiredMessage="C&#243;digo: Requerido."
												 title="C&#243;digo del repuesto" required="true" maxlength="10">
										<f:validator validatorId="codigoRepuestoValidator"/>
										<f:attribute name="campo" value="C&#243;digo" />
										<p:ajax update="msgCodigoSapEditar" global="false"/>
									</p:inputText>


									<h:outputLabel styleClass="label-general">Descripci&#243;n: <span>( * )</span></h:outputLabel>
									<p:inputText id="nombreRepuestoEditar" value="#{gestionRepuestosController.repuestoEditar.nombre}" 
												 styleClass="input-general" requiredMessage="Descripci&#243;n: Requerido." 
												 title="Descripci&#243;n del repuesto" required="true">
										<f:validator validatorId="nombreRepuestoValidator" />
										<f:attribute name="campo" value="Descripci&#243;n" />
										<p:ajax update="msgNombreRepuestoEditar" global="false"/>
									</p:inputText>


									<h:outputLabel styleClass="label-general">Unidad de medida: <span>( * )</span></h:outputLabel>
									<p:selectOneMenu id="cboUnidadMedidaEditar" value="#{gestionRepuestosController.repuestoEditar.idUnidad}"
													 styleClass="select-general">
										<f:selectItem itemLabel="Seleccione" itemValue="-1" />
										<f:selectItems var="unidad" value="#{gestionRepuestosController.listaUnidadMedida}"
											 		   itemValue="#{unidad.idUnidadMedida}" itemLabel="#{unidad.nombre}"/>
										<f:validator validatorId="seleccionValidator" />
										<f:attribute name="campo" value="Unidad de medida" />
										<p:ajax update="msgUnidadMedidaEditar" global="false"/>
									</p:selectOneMenu>


									<h:outputLabel styleClass="label-general"  >Estado: <span>( * )</span></h:outputLabel>
									<p:selectOneMenu id="cboEstadoRepuestoEditar" value="#{gestionRepuestosController.repuestoEditar.estado}"
													 styleClass="select-general" >
										<f:selectItem itemLabel="Activo" itemValue="A" />
										<f:selectItem itemLabel="Inactivo" itemValue="I" />
									</p:selectOneMenu>
								</p:panelGrid>
							</div>

							<div class="panel-botones" align="center">
								<p:commandButton value="Guardar" icon="ui-icon-disk"
												 styleClass="buton-general"
												 action="#{gestionRepuestosController.actualizarRepuesto}"
												 update="gridDatosEditarRepuesto,:formBusqueda:plgDtRepuestos,growl"
												 oncomplete="ocultarDialogSiOperacionEsCorrecta(xhr, status, args,wvDlgRepuestoEditar)"
												 process="@this, gridDatosEditarRepuesto"/>
								<p:spacer width="10" />
								<p:commandButton value="Salir" process="@this" icon="ui-icon-arrowreturn-1-w"
												 onclick="wvDlgRepuestoEditar.hide()" styleClass="buton-general" global="false"/>
							</div>

							<div class="panelMessages">
								<p:message id="msgCodigoSapEditar" for="codigoSapEditar" />
								<p:message id="msgNombreRepuestoEditar" for="nombreRepuestoEditar" />
								<p:message id="msgUnidadMedidaEditar" for="cboUnidadMedidaEditar" />
							</div>
						</div>
					</h:panelGroup>
				</p:dialog>

				<!--			Dialog Eliminar	Repuesto		-->
				<p:dialog id="dlgRepuestoEliminar" widgetVar="wvDlgRepuestoEliminar"
						  closable="true" header="Eliminar repuesto"
						  modal="true" resizable="false">
					<div class="panelEliminar">
						<h:outputText value=" &#191;Est&#225; seguro de eliminar el repuesto?" />
					</div>
					<div class="panel-botones">
						<p:commandButton value="S&#237;" library="images"  icon="ui-icon ui-icon-check"
										 action="#{gestionRepuestosController.eliminarRepuesto}"
										 update=":formBusqueda:plgDtRepuestos,growl" process="@this"							
										 oncomplete="wvDlgRepuestoEliminar.hide()"
										 styleClass="buton-general" />
						<p:spacer width="5"/>
						<p:commandButton value="No" onclick="wvDlgRepuestoEliminar.hide()"
										 icon="ui-icon ui-icon-close" styleClass="buton-general" global="false"/>
					</div>
				</p:dialog>
			
		</h:form>
	</ui:define>
</ui:composition>